<?php

namespace App\Models\Order;

use App\Models\BaseModel;

class OrderExportModel extends BaseModel
{
    /**
     * 与模型关联的数据表。
     *
     * @var string
     */
    protected $table = 'order_excel';

    /**
     * 可以被批量赋值的属性。
     *
     * @var array
     */
    protected $fillable = array(
        'name',
        'path',
        'parame',
        'type',
        'type_name',
        'is_run',
        'created_at',
        'shop_id',
        'updated_at'
    );

    // public $timestamps = false;

    public function aliasRable($alias)
    {
        return $this->setTable($alias);
    }

    /**
     * 查询数据需要过滤掉的属性。
     *
     * @var array
     */

    protected $hidden = array(
        'updated_at'
    );

    //返回关键字段
    public function getTableField()
    {
        return $this->fillable;
    }

    protected function serializeDate(\DateTimeInterface $date)
    {
        return $date->format('Y-m-d H:i:s');
    }

    /**
     * 建表语句
     */
    protected function buildTable($name = '')
    {
        $tablename = $this->table;
        if (!empty($name)) {
            $tablename = $name;
        }
        $table = "CREATE TABLE IF NOT EXISTS  $tablename (
            `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
            `name` varchar(255) DEFAULT '' COMMENT '本系统订单号',
            `path` varchar(255) DEFAULT '' COMMENT '生成的路径',
            `parame` varchar(255) DEFAULT '' COMMENT '参数',
            `is_run` int(11) DEFAULT '0' COMMENT '是否运行',
            `shop_id` int(11) DEFAULT '0' COMMENT '店铺id',
            `created_by` int(11) DEFAULT '0' COMMENT '创建者',
            `created_by_name` varchar(64) DEFAULT '' COMMENT '创建者名称',
            `created_at` datetime DEFAULT NULL COMMENT '创建时间',
            `updated_by` varchar(64) DEFAULT '' COMMENT '更新者',
            `updated_at` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
            PRIMARY KEY (`id`)
            ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='订单导出excel表';";
        return $table;
    }

    /**
     * 插入新的字段
     */
    protected function bulidField()
    {
        //例子
        $array = [
            'type' => "varchar(100) DEFAULT NULL COMMENT '类型'",
            'type_name' => "varchar(100) DEFAULT NULL COMMENT '类型名称'",
        ];
        return $array;
    }

    // 关联 role表
    public function userToRole($role)
    {
        // return $this->hasMany(Role::className(),);
    }
    //订单的状态
    // 提交中 审核中 已发货 已签收 已激活 异常单  失败单
    public function orderStatus()
    {
        return [
            0 => '提交中',
            1 => '提交上游',
            10 => '审核中',
            11 => '待发货',
            20 => '已发货',
            30 => '已签收',
            40 => '已激活',
            50 => '异常单',
            51 => '取消单',
            60 => '失败单'
        ];
    }

    public function getOrderStatusDesc($key)
    {
        $allStatus = $this->orderStatus();
        return $allStatus[$key];
    }

    public function getSourceType()
    {
        return [
            1 => '抖音',
            2 => '订单',
            3 => '财务订单',
            4 => '存量订单',
            5 => '拼多多',
            6 => '信息流',
            7 => '直播统计导出数据',
            8 => '直播达人订单详情下载',
        ];
    }

    public function getOrderSource($key)
    {
        $allStatus = $this->getSourceType();
        return $allStatus[$key];
    }

    public function getIsEdit()
    {
        /**  1+ 用户信息修改 2+ 商品信息修改 3+ 产品信息修改
         */
    }
}
